Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PoC PR introduces a possible design of a governance framework to address #12 for the solidity-ibc-eureka contracts using a multisig approach based on Safe. The key features implemented include:
Multisig (Safe): Critical administrative actions (e.g., upgrades, ownership transfers, pause) require approval from a quorum of pre-defined signers.
Upgradeable: The contracts use OpenZeppelin's Transparent Proxy for upgradeability, enabling secure and controlled updates to the system's logic without disrupting its state.
Pausable: Leveraging OpenZeppelin's
Pausable
module, this feature allows authorized actors to temporarily halt IBC operations during emergencies for quick mitigation of potential exploits or failures.These components together enhance the security, flexibility, and decentralization of the IBC Solidity contracts, laying the groundwork for a robust governance model.
PoC Architecture:
Notes
assembly ("memory-safe")
before assembly code.TimeLock
The Timelock mechanism is not currently implemented in this PoC but could be introduced in the future to enhance transparency specifically for upgrades. By delaying the execution of administrative actions, it would allow stakeholders to review proposed changes and raise objections if necessary. This would work well for upgrades but should not be applied to emergency operations, such as pausing, to avoid delays in critical scenarios. Balancing the delay duration would be key to maintaining flexibility while ensuring community trust
Security Consideration
Using proxy contracts requires careful security consideration. The aspect to be considered includes but are not limited to:
For an initial review of potential security concern we refer to 1,2,3,4.
Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.
godoc
comments.Files changed
in the GitHub PR explorer.SonarCloud Report
in the comment section below once CI passes.